package co.com.smart.persistence.entity.dto;

import java.io.Serializable;

import javax.persistence.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the smart_datos_maestros database table.
 * 
 */
@Entity
@Table(name="smart_datos_maestros")
@NamedQuery(name="SmartDatosMaestro.findAll", query="SELECT s FROM SmartDatosMaestro s")
public class SmartDatosMaestro implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="sm_scdatosmaestros")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private BigDecimal smScdatosmaestros;

	@Column(name="sm_codatosmaestros")
	private String smCodatosmaestros;

	@Column(name="sm_cousuario")
	private String smCousuario;

	@Column(name="sm_dsdatosmaestros")
	private String smDsdatosmaestros;

	@Column(name="sm_dsvalor")
	private String smDsvalor;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smFhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smFhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smFhretiro;

	//bi-directional many-to-one association to SmartAfiliacion
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartDatosMaestro1", fetch = FetchType.LAZY)
	private List<SmartAfiliacion> smartAfiliacions1;

	//bi-directional many-to-one association to SmartAfiliacion
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartDatosMaestro2", fetch = FetchType.LAZY)
	private List<SmartAfiliacion> smartAfiliacions2;

	//bi-directional many-to-one association to SmartAfiliacion
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartDatosMaestro3", fetch = FetchType.LAZY)
	private List<SmartAfiliacion> smartAfiliacions3;

	//bi-directional many-to-one association to SmartAgenda
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartDatosMaestro", fetch = FetchType.LAZY)
	private List<SmartAgenda> smartAgendas;

	//bi-directional many-to-one association to SmartMaestro
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scmaestro",referencedColumnName="sm_scmaestros")
	private SmartMaestro smartMaestro;

	//bi-directional many-to-one association to SmartMedico
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartDatosMaestro", fetch = FetchType.LAZY)
	private List<SmartMedico> smartMedicos;

	//bi-directional many-to-one association to SmartPlanServicio
	@OneToMany(cascade = CascadeType.ALL,mappedBy="smartDatosMaestro1",fetch = FetchType.LAZY)
	private List<SmartPlanServicio> smartPlanServicios1;

	//bi-directional many-to-one association to SmartPlanServicio
	@OneToMany(cascade = CascadeType.ALL, mappedBy="smartDatosMaestro2", fetch = FetchType.LAZY)
	private List<SmartPlanServicio> smartPlanServicios2;

	//bi-directional many-to-one association to SmartPlanServicio
	@OneToMany(cascade = CascadeType.ALL, mappedBy="smartDatosMaestro3", fetch = FetchType.LAZY)
	private List<SmartPlanServicio> smartPlanServicios3;
	
	//bi-directional many-to-one association to SmartPlanServicio
	@OneToMany(cascade = CascadeType.ALL, mappedBy="smartDatosMaestro4", fetch = FetchType.LAZY)
	private List<SmartPlanServicio> smartPlanServicios4;

	public SmartDatosMaestro() {
	}

	public BigDecimal getSmScdatosmaestros() {
		return this.smScdatosmaestros;
	}

	public void setSmScdatosmaestros(BigDecimal smScdatosmaestros) {
		this.smScdatosmaestros = smScdatosmaestros;
	}

	public String getSmCodatosmaestros() {
		return this.smCodatosmaestros;
	}

	public void setSmCodatosmaestros(String smCodatosmaestros) {
		this.smCodatosmaestros = smCodatosmaestros;
	}

	public String getSmCousuario() {
		return this.smCousuario;
	}

	public void setSmCousuario(String smCousuario) {
		this.smCousuario = smCousuario;
	}

	public String getSmDsdatosmaestros() {
		return this.smDsdatosmaestros;
	}

	public void setSmDsdatosmaestros(String smDsdatosmaestros) {
		this.smDsdatosmaestros = smDsdatosmaestros;
	}

	public String getSmDsvalor() {
		return this.smDsvalor;
	}

	public void setSmDsvalor(String smDsvalor) {
		this.smDsvalor = smDsvalor;
	}

	public Date getSmFhingreso() {
		return this.smFhingreso;
	}

	public void setSmFhingreso(Date smFhingreso) {
		this.smFhingreso = smFhingreso;
	}

	public Date getSmFhmodificacion() {
		return this.smFhmodificacion;
	}

	public void setSmFhmodificacion(Date smFhmodificacion) {
		this.smFhmodificacion = smFhmodificacion;
	}

	public Date getSmFhretiro() {
		return this.smFhretiro;
	}

	public void setSmFhretiro(Date smFhretiro) {
		this.smFhretiro = smFhretiro;
	}

	public List<SmartAfiliacion> getSmartAfiliacions1() {
		return this.smartAfiliacions1;
	}

	public void setSmartAfiliacions1(List<SmartAfiliacion> smartAfiliacions1) {
		this.smartAfiliacions1 = smartAfiliacions1;
	}

	public SmartAfiliacion addSmartAfiliacions1(SmartAfiliacion smartAfiliacions1) {
		getSmartAfiliacions1().add(smartAfiliacions1);
		smartAfiliacions1.setSmartDatosMaestro1(this);

		return smartAfiliacions1;
	}

	public SmartAfiliacion removeSmartAfiliacions1(SmartAfiliacion smartAfiliacions1) {
		getSmartAfiliacions1().remove(smartAfiliacions1);
		smartAfiliacions1.setSmartDatosMaestro1(null);

		return smartAfiliacions1;
	}

	public List<SmartAfiliacion> getSmartAfiliacions2() {
		return this.smartAfiliacions2;
	}

	public void setSmartAfiliacions2(List<SmartAfiliacion> smartAfiliacions2) {
		this.smartAfiliacions2 = smartAfiliacions2;
	}

	public SmartAfiliacion addSmartAfiliacions2(SmartAfiliacion smartAfiliacions2) {
		getSmartAfiliacions2().add(smartAfiliacions2);
		smartAfiliacions2.setSmartDatosMaestro2(this);

		return smartAfiliacions2;
	}

	public SmartAfiliacion removeSmartAfiliacions2(SmartAfiliacion smartAfiliacions2) {
		getSmartAfiliacions2().remove(smartAfiliacions2);
		smartAfiliacions2.setSmartDatosMaestro2(null);

		return smartAfiliacions2;
	}

	public List<SmartAfiliacion> getSmartAfiliacions3() {
		return this.smartAfiliacions3;
	}

	public void setSmartAfiliacions3(List<SmartAfiliacion> smartAfiliacions3) {
		this.smartAfiliacions3 = smartAfiliacions3;
	}

	public SmartAfiliacion addSmartAfiliacions3(SmartAfiliacion smartAfiliacions3) {
		getSmartAfiliacions3().add(smartAfiliacions3);
		smartAfiliacions3.setSmartDatosMaestro3(this);

		return smartAfiliacions3;
	}

	public SmartAfiliacion removeSmartAfiliacions3(SmartAfiliacion smartAfiliacions3) {
		getSmartAfiliacions3().remove(smartAfiliacions3);
		smartAfiliacions3.setSmartDatosMaestro3(null);

		return smartAfiliacions3;
	}

	public List<SmartAgenda> getSmartAgendas() {
		return this.smartAgendas;
	}

	public void setSmartAgendas(List<SmartAgenda> smartAgendas) {
		this.smartAgendas = smartAgendas;
	}

	public SmartAgenda addSmartAgenda(SmartAgenda smartAgenda) {
		getSmartAgendas().add(smartAgenda);
		smartAgenda.setSmartDatosMaestro(this);

		return smartAgenda;
	}

	public SmartAgenda removeSmartAgenda(SmartAgenda smartAgenda) {
		getSmartAgendas().remove(smartAgenda);
		smartAgenda.setSmartDatosMaestro(null);

		return smartAgenda;
	}

	public SmartMaestro getSmartMaestro() {
		return this.smartMaestro;
	}

	public void setSmartMaestro(SmartMaestro smartMaestro) {
		this.smartMaestro = smartMaestro;
	}

	public List<SmartMedico> getSmartMedicos() {
		return this.smartMedicos;
	}

	public void setSmartMedicos(List<SmartMedico> smartMedicos) {
		this.smartMedicos = smartMedicos;
	}

	public SmartMedico addSmartMedico(SmartMedico smartMedico) {
		getSmartMedicos().add(smartMedico);
		smartMedico.setSmartDatosMaestro(this);

		return smartMedico;
	}

	public SmartMedico removeSmartMedico(SmartMedico smartMedico) {
		getSmartMedicos().remove(smartMedico);
		smartMedico.setSmartDatosMaestro(null);

		return smartMedico;
	}

	public List<SmartPlanServicio> getSmartPlanServicios1() {
		return this.smartPlanServicios1;
	}

	public void setSmartPlanServicios1(List<SmartPlanServicio> smartPlanServicios1) {
		this.smartPlanServicios1 = smartPlanServicios1;
	}

	public SmartPlanServicio addSmartPlanServicios1(SmartPlanServicio smartPlanServicios1) {
		getSmartPlanServicios1().add(smartPlanServicios1);
		smartPlanServicios1.setSmartDatosMaestro1(this);

		return smartPlanServicios1;
	}

	public SmartPlanServicio removeSmartPlanServicios1(SmartPlanServicio smartPlanServicios1) {
		getSmartPlanServicios1().remove(smartPlanServicios1);
		smartPlanServicios1.setSmartDatosMaestro1(null);

		return smartPlanServicios1;
	}

	public List<SmartPlanServicio> getSmartPlanServicios2() {
		return this.smartPlanServicios2;
	}

	public void setSmartPlanServicios2(List<SmartPlanServicio> smartPlanServicios2) {
		this.smartPlanServicios2 = smartPlanServicios2;
	}

	public SmartPlanServicio addSmartPlanServicios2(SmartPlanServicio smartPlanServicios2) {
		getSmartPlanServicios2().add(smartPlanServicios2);
		smartPlanServicios2.setSmartDatosMaestro2(this);

		return smartPlanServicios2;
	}

	public SmartPlanServicio removeSmartPlanServicios2(SmartPlanServicio smartPlanServicios2) {
		getSmartPlanServicios2().remove(smartPlanServicios2);
		smartPlanServicios2.setSmartDatosMaestro2(null);

		return smartPlanServicios2;
	}

	public List<SmartPlanServicio> getSmartPlanServicios3() {
		return this.smartPlanServicios3;
	}

	public void setSmartPlanServicios3(List<SmartPlanServicio> smartPlanServicios3) {
		this.smartPlanServicios3 = smartPlanServicios3;
	}

	public SmartPlanServicio addSmartPlanServicios3(SmartPlanServicio smartPlanServicios3) {
		getSmartPlanServicios3().add(smartPlanServicios3);
		smartPlanServicios3.setSmartDatosMaestro3(this);

		return smartPlanServicios3;
	}

	public SmartPlanServicio removeSmartPlanServicios3(SmartPlanServicio smartPlanServicios3) {
		getSmartPlanServicios3().remove(smartPlanServicios3);
		smartPlanServicios3.setSmartDatosMaestro3(null);

		return smartPlanServicios3;
	}
	
	public List<SmartPlanServicio> getSmartPlanServicios4() {
		return this.smartPlanServicios4;
	}

	public void setSmartPlanServicios4(List<SmartPlanServicio> smartPlanServicios4) {
		this.smartPlanServicios4 = smartPlanServicios4;
	}

	public SmartPlanServicio addSmartPlanServicios4(SmartPlanServicio smartPlanServicios4) {
		getSmartPlanServicios4().add(smartPlanServicios4);
		smartPlanServicios4.setSmartDatosMaestro4(this);

		return smartPlanServicios4;
	}

	public SmartPlanServicio removeSmartPlanServicios4(SmartPlanServicio smartPlanServicios4) {
		getSmartPlanServicios4().remove(smartPlanServicios4);
		smartPlanServicios4.setSmartDatosMaestro4(null);

		return smartPlanServicios4;
	}

}